package decorator;

/**
 * 抽象装饰类
 * 1、需要继承或实现抽象构件类(获得操作方法、属性等)
 * 2、包含具体的构件实例(获得具体的操作对象)
 */
public abstract class Garnish extends FastFood {

    // 申明快餐类变量(获得具体的操作对象，可能是炒饭，可能是炒面)
    private FastFood fastFood;

    public FastFood getFastFood() {
        return fastFood;
    }

    public void setFastFood(FastFood fastFood) {
        this.fastFood = fastFood;
    }

    /**
     * 有参构造方法
     * @param fastFood
     * @param price
     * @param desc
     */
    public Garnish(FastFood fastFood,float price, String desc) {
        // 相当于主食类中的构造方法，用于保存当前配料子类的参数信息
        super(price, desc);
        // 保存主食信息
        this.fastFood = fastFood;
    }
}
